﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;

namespace Sinacor.Servico.Bovespa.Operador.Service.DataContract.Request
{
    [DataContract(Namespace = "http://www.bovespa.com.br/Sinacor.Servico.Bovespa.Operador.Service.DataContract.Request", Name = "PreferenciasRequest")]
    public class PreferenciasRequest
    {

        #region Campos
        /// <summary>
        /// Bolsa
        /// </summary>
        private string _bolsa;
        private int _codigoOperador;
        /// <summary>
        /// Tipo Mercado
        /// </summary>
        private DataContract.Enum.TipoMercado? _mercado;
        /// <summary>
        /// Tipo Ordem
        /// </summary>
        private DataContract.Enum.TipoOrdem? _ordem;
        /// <summary>
        /// Ordem em modo de insert
        /// </summary>
        private bool _ordemModoInsert;
        /// <summary>
        /// Ordena Digitação de Ordens em Lote por Ordem Decrescente
        /// </summary>
        private bool _ordenaDigitacaoDecrescente;
        /// <summary>
        /// Popula Lote de Ordens Automaticamente após a Inserção
        /// </summary>
        private bool _populaLoteAutomaticamenteAposInsercao;
        /// <summary>
        /// Popula Lote de Ordens Automaticamente após o Pré Boleto
        /// </summary>
        private bool _populaLoteAutomaticamenteAposPreBoleto;
        /// <summary>
        /// Utiliza Data da Ordem para usar Pré Boleto
        /// </summary>
        private bool _utilizaDataPreBoleto;
        #endregion

        #region Propriedades
        /// <summary>
        /// Bolsa
        /// </summary>
        [DataMember(IsRequired = false)]
        public string Bolsa
        {
            get
            {
                return _bolsa;
            }
            set
            {
                _bolsa = value;
            }
        }

        /// <summary>
        /// Código do Operador
        /// </summary>
        [DataMember(IsRequired = false)]
        public int CodigoOperador
        {
            get
            {
                return _codigoOperador;
            }
            set
            {
                _codigoOperador = value;
            }
        }

        /// <summary>
        /// Tipo mercado
        /// </summary>
        [DataMember(IsRequired = false)]
        public DataContract.Enum.TipoMercado? Mercado
        {
            get
            {
                return _mercado;
            }
            set
            {
                _mercado = value;
            }
        }

        /// <summary>
        /// Tipo Ordem
        /// </summary>
        [DataMember(IsRequired = false)]
        public DataContract.Enum.TipoOrdem? Ordem
        {
            get
            {
                return _ordem;
            }
            set
            {
                _ordem = value;
            }
        }

        /// <summary>
        /// Ordem em modo de insert
        /// </summary>
        [DataMember(IsRequired = false)]
        public bool OrdemModoInsert
        {
            get
            {
                return _ordemModoInsert;
            }
            set
            {
                _ordemModoInsert = value;
            }
        }

        /// <summary>
        /// Ordena Digitação de Ordens em Lote por Ordem Decrescente
        /// </summary>
        [DataMember(IsRequired = false)]
        public bool OrdenaDigitacaoDecrescente
        {
            get
            {
                return _ordenaDigitacaoDecrescente;
            }
            set
            {
                _ordenaDigitacaoDecrescente = value;
            }
        }

        /// <summary>
        /// Popula Lote de Ordens Automaticamente após a Inserção
        /// </summary>
        [DataMember(IsRequired = false)]
        public bool PopulaLoteAutomaticamenteAposInsercao
        {
            get
            {
                return _populaLoteAutomaticamenteAposInsercao;
            }
            set
            {
                _populaLoteAutomaticamenteAposInsercao = value;
            }
        }

        /// <summary>
        /// Popula Lote de Ordens Automaticamente após o Pré Boleto
        /// </summary>
        [DataMember(IsRequired = false)]
        public bool PopulaLoteAutomaticamenteAposPreBoleto
        {
            get
            {
                return _populaLoteAutomaticamenteAposPreBoleto;
            }
            set
            {
                _populaLoteAutomaticamenteAposPreBoleto = value;
            }
        }

        /// <summary>
        /// Utiliza Data da Ordem para usar Pré Boleto
        /// </summary>
        [DataMember(IsRequired = false)]
        public bool UtilizaDataPreBoleto
        {
            get
            {
                return _utilizaDataPreBoleto;
            }
            set
            {
                _utilizaDataPreBoleto = value;
            }
        }
        #endregion

    }
}
